home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / apache_username.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  104 lines

  1. #
  2. # Copyright 2001 by Noam Rathaus <noamr@securiteam.com>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #
  7.  
  8. if(description)
  9. {
  10.  script_id(10766); 
  11.  script_bugtraq_id(3335);
  12.  script_cve_id("CAN-2001-1013");
  13.  script_version ("$Revision: 1.13 $");
  14.  
  15.  name["english"] = "Apache UserDir Sensitive Information Disclosure";
  16.  script_name(english:name["english"]);
  17.  
  18.  desc["english"] = "An information leak occurs on Apache based web servers 
  19. whenever the UserDir module is enabled. The vulnerability allows an external 
  20. attacker to enumerate existing accounts by requesting access to their home 
  21. directory and monitoring the response.
  22.  
  23.  
  24. Solution: 
  25. 1) Disable this feature by changing 'UserDir public_html' (or whatever) to 
  26. 'UserDir  disabled'.
  27.  
  28. Or
  29.  
  30. 2) Use a RedirectMatch rewrite rule under Apache -- this works even if there 
  31. is no such  entry in the password file, e.g.:
  32. RedirectMatch ^/~(.*)$ http://my-target-webserver.somewhere.org/$1
  33.  
  34. Or
  35.  
  36. 3) Add into httpd.conf:
  37. ErrorDocument 404 http://localhost/sample.html
  38. ErrorDocument 403 http://localhost/sample.html
  39. (NOTE: You need to use a FQDN inside the URL for it to work properly).
  40.  
  41. Additional Information:
  42. http://www.securiteam.com/unixfocus/5WP0C1F5FI.html
  43.  
  44.  
  45. Risk factor : Low";
  46.  
  47.  script_description(english:desc["english"]);
  48.  
  49.  summary["english"] = "Apache UserDir Sensitive Information Disclosure";
  50.  script_summary(english:summary["english"]);
  51.  
  52.  script_category(ACT_GATHER_INFO);
  53.  
  54.  script_copyright(english:"This script is Copyright (C) 2001 SecuriTeam");
  55.  family["english"] = "Misc.";
  56.  script_family(english:family["english"]);
  57.  
  58.  script_dependencie("find_service.nes", "http_version.nasl");
  59.  script_require_keys("www/apache");
  60.  script_require_ports("Services/www", 80);
  61.  exit(0);
  62. }
  63.  
  64. #
  65. # The script code starts here
  66. #
  67.  
  68. include("http_func.inc");
  69.  
  70. port = get_http_port(default:80);
  71.  
  72.  
  73. if (! get_port_state(port)) exit(0);
  74.  
  75. soc = http_open_socket(port);
  76. if(! soc) exit(0);
  77.  
  78.  
  79. soc = http_open_socket(port);
  80. if (soc)
  81. {
  82.  req = http_head(item:"/~root", port:port);
  83.  send(socket:soc, data:req);
  84.  buf_valid = recv_line(socket:soc, length:1000);
  85.  http_close_socket(soc);
  86. }
  87.  
  88. soc = http_open_socket(port);
  89. if (soc)
  90. {
  91.  req = http_head(item:"/~anna_foo_fighter", port:port);
  92.  send(socket:soc, data:req);
  93.  buf_invalid = recv_line(socket:soc, length:1000);
  94.  http_close_socket(soc);
  95. }
  96.  
  97. if ( ! buf_valid || ! buf_invalid ) exit(0);
  98. if ( buf_valid != buf_invalid )
  99. {
  100.  security_note(port);
  101. }
  102.  
  103.  
  104.